describe('quickhull', function () {
    describe('getDistant', function () {
        it('zero distance', function () {
            var bl = [
                {lat: 0, lng: 0},
                {lat: 0, lng: 10}
            ];
            expect(L.QuickHull.getDistant({lat: 0, lng: 0}, bl)).to.eql(0);
        });
        it('non-zero distance', function () {
            var bl = [
                {lat: 0, lng: 0},
                {lat: 0, lng: 10}
            ];
            expect(L.QuickHull.getDistant({lat: 5, lng: 5}, bl)).to.eql(-50);
        });
    });

    describe('getConvexHull', function () {
        it('creates a hull', function () {
            expect(L.QuickHull.getConvexHull([{lat: 0, lng: 0},
                {lat: 10, lng: 0},
                {lat: 10, lng: 10},
                {lat: 0, lng: 10},
                {lat: 5, lng: 5}
            ])).to.eql([
                {lat: 0, lng: 10},
                {lat: 10, lng: 10},
                {lat: 10, lng: 0},
                {lat: 0, lng: 0}
            ]);
        });
        it('creates a hull for vertically-aligned objects', function () {
            expect(L.QuickHull.getConvexHull([{lat: 0, lng: 0},
                {lat: 5, lng: 0},
                {lat: 10, lng: 0}
            ])).to.eql([
                {lat: 0, lng: 0},
                {lat: 10, lng: 0}
            ]);
        });
        it('creates a hull for horizontally-aligned objects', function () {
            expect(L.QuickHull.getConvexHull([{lat: 0, lng: 0},
                {lat: 0, lng: 5},
                {lat: 0, lng: 10}
            ])).to.eql([
                {lat: 0, lng: 0},
                {lat: 0, lng: 10}
            ]);
        });
    });
});
